/**
 * 
 */
package com.demo.security.annotation.audit;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 服务处理的审计内容注解
 * 本注解属于变量注解,一些业务操作需要注解深入到业务逻辑里进行,
 * 为了无侵入性实现,对象变量标记为该注解时,PreAutid或PostAudit将认为该变量为业务注解内容
 * 如果方法没有配置该注解,我们将方法参数和返回结果整合后生成规范的审计内容。
 * 另外,该注解标记的变量可以为一般类型,也可以是复杂类型。
 * @author ryuu.kk
 *
 */
// 使用在构造方法参数,变量和枚举类型
@Target({ElementType.FIELD, ElementType.CONSTRUCTOR, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface AuditNotes {

	/**
	 * 审计注释字段类型
	 * 默认空(简单类型),也可以为复杂类型:"com.demo.core.model.User"
	 * @return String
	 */
	public String type() default "";
}
